![]() Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts
专利摘要:
Ein Verfahren zum Steuern eines Handhabungsgerätes, wie eines Mehrachs-Industrieroboters, mittels einer Steuerungseinrichtung, mit einem Steuerungskern zum Ausführen von Steuerungsprozessen für das Handhabungsgerät zeichnet sich dadurch aus, dass durch eine Schnittstellenfunktion überprüft wird, ob optional im Steuerungskern enthaltene Modelle und/oder Prozeduren oder zusätzliche, an der Schnittstelle vorgebbare Modelle und/oder Transformationsprozeduren und/oder Spezialalgorithmen kinematischer Strukturen für bewegungsrelevante Größen des Handhabungsgerätes als Modellmodule verwendet werden. Auf diese Weise lassen sich mit einer zur Durchführung des erfindungsgemäßen Verfahrens geeigneten Steuervorrichtung auch Spezial- und Fremdkinematiken betreiben, ohne dass die Steuerung selbst geändert werden müsste. 公开号:DE102004031485A1 申请号:DE200410031485 申请日:2004-06-30 公开日:2006-01-19 发明作者:Martin Dr. Weiss 申请人:KUKA Roboter GmbH; IPC主号:B25J9-16
专利说明:
[0001] DieErfindung betrifft ein Verfahren und eine Vorrichtung zum Steuerneines Handhabungsgerätes,wie eines Mehrachs-Industrieroboters,mittels einer Steuerungseinrichtung mit einem Steuerungskern zumAusführenvon Steuerungsprozessen fürdas Handhabungsgerät. [0002] ZurSteuerung von automatisierten Handhabungsgeräten, wie Mehrachs-Industrierobotern,Portalrobotern (in einem Portalgestell angeordnete und beweglicheRoboter), SCARA-Robotern(Selecitve Compliance Assembly Robot Arm – ein selektiv in einer Ebeneausgleichender Roboter, Schwenkarm-Roboter) oder Palettierrobotern, kommenheutzutage regelmäßig programmierbarerechnergestützte,d.h. programmtechnisch eingerichtete Steuerungsvorrichtungen zumEinsatz. Ein zentraler Bestandteil derartiger Robotersteuerungensind Prozeduren zur Umwandlung kinematischer und dynamischer Größen undSystemzuständedes Roboters zum Zwecke einer Verwendung für unterschiedliche Steuerungsaufgaben.Dies beinhaltet beispielsweise die Position, Orientierung, Geschwindigkeitund Beschleunigung (des Endeffektors oder der Achsen), Kräfte undMomente in den Getriebelagern, Soll-Ströme, die kinetische Energiedes Systems sowie mechanische Spannungen auf der Grundlage von bekanntenMaschinendaten. Diese Daten umfassen beispielsweise Geometriebeschreibungendes Handhabungsgeräts,wie Längenoder Winkel, Massen, Massenschwerpunkte und Trägheiten sowie Materialparameter,wie Steifigkeiten, Reibungs-, und Ausdehnungskoeffizienten oder dergleichen.Weitere Einflussgrößen können vonSensoren gelieferte Messwerte sein, wie Temperatur, Dehnungen undVerspannungen. [0003] DieUmwandlung der vorstehend beispielhaft genannten Größen undSystemzuständekann dabei in verschiedene Richtungen erfolgen, wobei zusätzlich zuunterscheiden ist, ob Ist- oderSollwerte als Eingangsgrößen verwendetwerden. Beispielhaft seien hier erwähnt:– die Bestimmungdes Soll-Stroms füreine Roboterachse aus deren Soll-Position unter Berücksichtigung desEinflusses der Schwerkraft, der Soll-Geschwindigkeit, Soll-Beschleunigungund des Massenträgheitsmomentsunter Berücksichtigungeiner Soll-Temperatur; – dieBestimmung eines geschätztenGetriebemoments aus der Ist-Geschwindigkeit, Ist-Beschleunigung unddes Massenträgheitsmomentsder Achse unter Berücksichtigungeiner Ist-Temperatur; und – dieBestimmung der kartesischen Bahnabweichung aus achsweisen Soll-Positionenund Schleppfehlern, d.h. Unterschieden zwischen Soll- und Ist-Position. [0004] Nachihrem grundlegenden Aufbau werden die kinematischen Strukturen vonHandhabungsgeräten, diesogenannten "Kinematiken", in verschiedeneKlassen unterteilt, wobei die Unterteilung im Wesentlichen bestimmtist durch die Anzahl der Achsen im System, die Art der Achsen (Linearachsen,Drehachsen, Kugelgelenke, ...), die Verbindung der Achsen durchBauteile des Roboters sowie die relative Lage der Achsen zueinander.Hinsichtlich der Achsen-Verbindung ist ein entscheidender Gesichtspunkt,ob sich geschlossene Strukturen ("Schleifen") ergeben oder ob eine offene kinematischeKette vorliegt. Die relative Achslage ist im wesentlichen gekennzeichnetdurch Orthogonalitätsbeziehungenund die Schnittpunkte der Achsen. [0005] Derverwendete Begriff einer "Klassevon Kinematiken" bedeutet,dass fürdie angesprochenen mathematischen Prozeduren, die in einer zugehörigen Steuerungablaufen sollen, nur die vorstehend genannte Ausgestaltung und Anordnungder Achsen entscheidend fürdie mathematisch-physikalische Behandlung ist, während konkrete geometrischeAbmessungen von beispielsweise Robotern unterschiedlicher Größen für unterschiedlicheAufgaben und Lasten lediglich als Parameter in der entsprechendenBeschreibung auftauchen, ohne die Verfahren an sich in ihrer Komplexität zu beeinflussen. [0006] Typischerweisesind Robotersteuerungen heute in der Lage, Handhabungsgeräte aus nureiner oder weniger derartigen Klassen (weniger als 5) von Kinematikenzu betreiben. [0007] Dieeingangs erwähnten,für dieSteuerung eines Handhabungsgerätserforderlichen Prozeduren umfassen im Wesentlichen: 1. Transformationen zwischen Achswinkeln und kartesischen Positionenund Orientierungen sowie zwischen den Ablei tungen dieser Größen, d.h.Umrechnung von Achsgeschwindigkeiten und -beschleunigungen in kartesischeGeschwindigkeiten bzw. Geschwindigkeiten der Umorientierung mitden entsprechenden Beschleunigungen und umgekehrt. Diese sogenanntenVorwärts-und Rückwärtstransformationensind die Grundlage fürkartesisches Verfahren; ohne derartige Prozeduren ist keine kartesischeBahnprogrammierung des Roboters möglich. In der Regel wird hierein kinematisches Modell des Roboter verwendet, d.h. eine geometrischeBeschreibung ohne Berücksichtigungvon Massen, Trägheitensowie den resultierenden Kräftenund Momenten. 2. Bestimmung von Kräften,Momenten und kinetischer Energie; ohne derartige Prozeduren istkeine zeitoptimale Bewegungsprogrammierung und keine basierte Regelungmöglich. Grundlagefür dieBerechnung ist in der Regel ein Starrkörpermodell (siehe unter anderem:Craig, Intruduction to Robotics: Mechanics and Control, AddisonWesley, 1986), wobei Reibung mitberücksichtigt werden kann. InErweiterung könnenauch Elastizitätenin den Antriebssträngenmitberücksichtigtwerden. Ein solches Robotermodell wird auch als Dynamikmodell bezeichnetund ist Grundlage fürdie Bewegungsplanung. 3. Berechnung von Funktionen der kinematischen und dynamischenGrößen alsHilfsgrößen, z.B.der Trägheitum eine Roboterachse als wichtige Größe für eine Achsregelung. Größen wiedie Trägheitvariieren bei einem Roboter in Abhängigkeit von weiteren Parametern,wie beispielswei se der Nutzlast und Achswinkeln von in einer kinematischoffenen Kette nachfolgenden Achsen. Derartige Funktionswerte findenbeispielsweise fürmodellbasierte Regelung Verwendung. 4. Berechnung von partiellen Ableitungen der o.g. Funktionen. Diepartiellen Ableitungen werden benötigt – zur Umrechnung von achsweiseund kartesisch gegebenen Größen mitHilfe der Jakobi-Matrix; – zurIdentifikation von Systemparametern, z.B. nach dem Least-Squares-Prinzip.Derartige Identifikationsverfahren verwenden partielle Ableitungenin Form der Jakobi-Matrix. Eine Sensitivitätsanalyse der Parameter erfordertdie Hesse-Matrix, d.h. die partiellen Ableitungen zweiter Ordnung.Derartige Verfahren werden jedoch in der Regel außerhalbder Robotersteuerung eingesetzt (siehe: Kovacs, Rechnergestützte symbolischeRoboterkinematik, Technische Universität Berlin, 1991). – als zusätzlicheGrößen im Regelkreis. 5. Kombinationen der Prozeduren 1 bis 3, z.B. kinematische Berechnung(Prozedur 1) unter Berücksichtigungder durch die Massen und Schwerkraft bedingten Durchbiegung derStruktur (Prozedur 2). [0008] EineRobotersteuerung bearbeitet Bewegungsbefehle aus verschiedenen Quellen,wie Programmbewegungen, Handverfahrbewegungen, Interruptbewegungen.Bewegungsplanung bezeichnete denjenigen Teil eines Compilers oderInterpreters, der aus den Bewegungsbefehlen einer Roboter-Programmiersprache(die üblicherweisedie Bewegungsarten Punkt-zu-Punkt, Linearbewegung, Kreisbewegung,Spline-Bewegung enthält,welche wiederum jeweils durch den Zielpunkt der Bewegung charakterisiertsind) die geometrische Bahn des Werkzeugs anhand gewisser Kriterienberechnet, evtl. einschließlichdes Geschwindigkeitsverlaufs auf der Bahn. Dieser vorab erzeugte "Plan" für den Bewegungsverlaufwird danach "interpoliert", d.h. Stützpunkteauf der geplanten Bahn werden – meistin festen Zeitabständen – berechnetund – alsAchswinkel – über dieAntriebsschnittstelle an die Antriebe weitergegeben. In der Planungwird z.B. geprüft,ob die Achswinkel im zulässigenBereich liegen (Aufruf der Rückwärtstransformation)und/oder es wird eine zeitoptimale Bahn geplant (Aufruf des inversenDynamikmodells). [0009] Inder Interpolation werden zu jedem kartesischen Stützpunktdie zugehörigenAchswinkel berechnet (Aufruf der Rückwärtstransformation). [0010] Inder Antriebsschnittstelle werden abhängig von aktueller Position,Geschwindigkeit, Beschleunigung und Last Vorsteuermomente berechnet.In der Regelung werden gegebenenfalls verschiedene Ableitungen berechnet. [0011] Während inder klassischen Kaskadenregelung von Antrieben kein Modell der Straße verwendetwird, daher partielle Ableitungen nicht erforderlich sind, wirdbei modernen nichtlinearen modellbasierten Regelungsverfahren, wie "Feedback Linearization" (A. Isidori, Non-linearControl Systems, Springer Verlag, 1989) oder "Backstepping" (Kokotovic: Nonlinear and AdaptiveControl Design, Wiley Interscience, 1995) ein nichtlineares Zustandsraummodelld/dt x = f (x, u) in ein lineares Modell transformiert, für das dannStan dardverfahren der linearen Regelungstheorie verwendet werden.Die Transformation beinhaltet Ableitungen. Dieser Ansatz der "Non-linear ModelPredictive Control" löst in jedemRegeltakt ein Optimierungsproblem über einen gewissen Zeithorizont(Jan Maciejowski: Predictive Control with Constraints, PrenticeHall, 2001). Fürdie Lösung vonMinimierungsproblemen wird üblicherweiseeine Nullstelle des Gradienten, der ebenfalls durch partielle Ableitungengekennzeichnet ist, bestimmt. [0012] Dieobigen Prozeduren lassen sich rechnerisch unter Rückgriffauf bestimmte Standardalgorithmen analytischer und/oder numerischerArt durchführen.Im Folgenden werden zur mathematischen Formulierung der genanntenProzeduren die folgenden Bezeichnungen verwendet: n AnzahlAchsen oder Gelenke θi, i = 1, ..., n Gelenkkoordinaten(Winkel bei Drehgelenken, Längenbei Schubgelenken; skalar) (x,y, z, a, b, c, S) kartesischePosition (S: Konfigurationsinformationen; siehe unten) [0013] Dievorstehend genannten (Transformations-)Prozeduren 1 bis 5 können bedingtdurch die interne Struktur der jeweils eingesetzten Robotersteuerungin unterschiedlicher Weise zur Verfügung gestellt werden, da siein ihren Eingangs- undAusgangsgrößen nichteindeutig festgelegt sind. Dies sei im Folgenden am Beispiel derRückwärtsrechnungbei einer Kinematik mit offener Kette, d.h. der Bestimmung von Gelenkkoordinatenbei einer gegebenen kartesischen Position des Roboterwerkzeugs (Endeffektor)dargestellt: – Rückwärtsrechnung bei einem Sechsarm-Knickroboter,d.h. Bestimmung von Achswinkeln zu einer gegebenen kartesischenPosition: (x, y, z, a, b, C, S) → (θl, ..., θm) Hierbei beschreiben die Eingangsvariablenx,y,z,a,b,c die Sollposition und -Orientierung, beispielsweise über Roll-Pitch-Yaw-Winkel,wohingegen die zusätzlicheVariable S (typischerweise eine als Bit-Folge interpretierte ganzeZahl) eine Information dahingehend enthält, welche von den verschiedenenLösungen derBerechnung ausgewähltwerden soll. Hierbei wird implizit angenommen, dass eine eindeutigeLösung existiert.Die zusätzlichenInformationen könnenbeispielsweise in Form von zulässigenWinkelbereichen vorgegeben werden. – Rückwärtsrechnungmit mengenwertigem Ergebnis: (x, y, z, a, b, c)→{N, θi,j},j = 1, ..., N. Durch diese Art von Rückwärtsrechnung wird die Anzahlder möglichenLösungenN zusammen mit den jeweiligen Lösungenals Ergebnis geliefert. Die Zusatzinformation S ist hier nicht erforderlich.Es wird implizit angenommen, dass endlich viele Lösungen existieren. – Rückwärtsrechnungmit Ergebnis möglichstnahe an einer gegebenen Position: (x, y, z, a, b, c, φi)→(θl, ..., θn) Zu einer gegebenen kartesischen Position(x, y, z, a, b, c) und gegebenen Achswinkeln (φi)wird diejenige Lösungermittelt, deren euklidischer Abstand minimal wird, d.h. ǁφi – θiǁ = min. [0014] Beivorbekannten Verfahren und Vorrichtungen der eingangs genanntenArt werden eine oder mehrere dieser verschiedenen Varianten vomHersteller der Steuerung als bevorzugte Prozedur(en) ausgewählt und implementiert.Kinematische Daten (Längen,Winkel), dynamische Daten (Massen, Trägheiten) und ggf. weitere physikalischeParameter werden in entsprechenden zugehörigen Maschinenbeschreibungenals Parameter fürdie Prozeduren 1 bis 5 abgelegt. [0015] Beider Implementierung ergibt sich aus mathematischen Gründen einefundamentale Einschränkung: Esist nicht möglich,ein allgemeines mathematisches Verfahren zur Bestimmung aller Prozeduren1 bis 5 aus einer gegebenen geometrischen und dynamischen Beschreibungeines Roboters anzugeben. Einige prinzipielle mathematische Problemehierbei sind: – Die Rückwärtsrechnung bei Kinematikenmit offener Kette kann überdie sogenannte tan/2-Substituion auf die Bestimmung der Nullstellenvon Polynomen zurückgeführt werden,wobei jedoch fürallgemeine Polynome ab dem fünftenGrad keine analytische Lösungexistiert (van der Waerden, Algebra I/II, Springer, 1993). Somitist fürbeliebige Achsenschiefständeund Achsabständekeine analytische Lösungder Rückwärtsrechnungmöglich.Außerdemsteigt der Rechenaufwand fürdie analytische Lösung – soferneine solche existiert – auchbei Verwendung modernster Methoden stark an (Kovacs, a.a.O.). Dabeiist eine analytische Lösungeiner numerischen vorzuziehen, da numerische Verfahren beispielsweisenicht in der Lage sind, die Anzahl möglicher Lösungen zu bestimmen. – DieVorwärtsrechnungbei Kinematiken mit offener Kette ist trivial, da hierbei lediglichMatrizen multipli ziert werden müssen(Craig, a.a.O.; Paul, Robot Manipulators, MIT Press, 1983). BeiKinematiken mit kinematischen Schleifen, z.B. Hexapoden, ist inder Regel keine analytische Vorwärtsrechnungbekannt, so dass hier das vorstehend zur Rückwärtsrechnung Gesagte entsprechendgilt. Die Rückwärtsrechnungbei Schleifen-Kinematiken ist dagegen oft einfach analytisch zubestimmen (Möller,Ein Verfahren zur automatischen Analyse mehrschleifiger räumlicherMechanismen, Dissertation, Universität Stuttgart, 1992). – DieBerechnung der "inversenDynamik" ist beioffenen kinematischen Ketten überden sogenannten Euler-Newton-Algorithmusmöglich,sofern die Achskoordinaten bekannt sind. Bei geschlossenen kinematischenKetten gibt es wie im Falle der Rückwärtsrechnung von Kinematikenmit offener Kette keine allgemeine Lösung. – Sofernbei einer bestimmten Prozedur keine analytische Berechnungsmethodebekannt ist, existiert regelmäßig auchkeine analytische Berechnungsmöglichkeitfür diepartiellen Ableitungen (siehe oben). [0016] Dennochliegt es im Bestreben eines Steuerungsherstellers, möglichstviele Arten von Kinematiken mit einer gegebenen Steuerung betreibenzu können.Dies trifft insbesondere dann zu, wenn dieser Hersteller sowohlSteuerungen als auch Kinematiken anbietet. Andererseits soll eineSteuerung auch mit Kinematiken von Fremdherstellern betrieben werdenkönnen,die selbst keine eigenen Steuerungen anbieten. Hierzu boten sich für einenSteuerungshersteller bislang zwei Möglichkeiten: Einerseits dieImplementierung aller Prozeduren 1 bis 5 für eine beschränkte Anzahlvon Kinematiken, andererseits der Einsatz (iterativer) numerischeVerfahren in Kombination mit analytischen Lösungen. Als nachteilig ist dabeiinsbesondere anzusehen, dass fürjede Kinematik alle Prozeduren 1 bis 5 implementiert werden müssen, sodass neben dem Entwicklungs- und Pflegeaufwand auch der Umfang derSteuerung mit der Anzahl der zu unterstützenden Kinematiken beliebiganwächst.Sollen also neuentwickelte Kinematiken oder Fremdkinematiken einesanderen Herstellers mit einer gegebenen Steuerung betrieben werden,so ist dies nur dann möglich,wenn die entsprechenden Kinematik in eine der bereits implementiertenKinematikklassen fälltbzw. mit deren Prozeduren berechenbar ist. [0017] DerEinsatz (iterativer) numerischer Verfahren in Kombination mit analytischenLösungensei im Folgenden am Zusammenspiel von Vorwärts- und Rückwärtstransformationen bei einerKinematik mit offener Kette erläutert.Für dieVorwärtsrechnungist lediglich eine Matrizenmultiplikation erforderlich, wobei sichdie Matrixeinträgeaus den Gelenkvariablen und kinematischen Beschreibungen (beispielsweiseden Denavit-Hartenberg-Parametern) sowie aus den Koordinatensystemenfür Werkzeug,Roboterbasis usw. zusammensetzen. Mathematisch ist dabei die Positiondes Endeffektors und dessen Orientierung P als Funktion der Achsvariablen θi gegeben: P = f(θi). [0018] Dienotwendigen Parameter könnenin einem Datensatz zur Maschinenbeschreibung abgelegt sein. DieRücktransformationist nach den vorstehenden Ausführungenim Allgemeinen nicht analytisch lösbar, so dass statt dessenein Verfahren zur numerischen Lösungvon Gleichungssystemen der obigen Form für ein gegebenes P benutzt wird(Münch,Universelle Koordinatentransformation für Industrie-Roboter, www.maschinenbau.hs-magdeburg.de/personal/bargfrede/fue_robotics.html) [0019] Beidieser Vorgehensweise ist insbesondere als nachteilig anzusehen,dass es nicht möglichist, die Prozeduren 1 bis 5 allgemein gültig zu implementieren, wobeiinsbesondere die mangelnde Lösungs-Mehrdeutigkeit,sowie das fürEchtzeit-Anwendungen kritische Konvergenzverhalten und die oft unzureichendeGenauigkeit gegen den Einsatz der notwendigerweise Anwendung findendennumerischen Verfahren sprechen. [0020] Heutzutageist ein Kinematik-Hersteller von den Software-Entwicklungszyklen des Steuerungsherstellersabhängig:Selbst wenn der Kinematikhersteller in der Lage ist, die Prozeduren1 bis 5 rechnerisch umzusetzen, besteht für ihn keine Möglichkeit,diese mit einer bestehenden Steuerungssoftware zu nutzen. Darüber hinausbesteht seitens der Kinematikhersteller regelmäßig der Wunsch, die Prozeduren1 bis 5 selbst zu entwickeln, um nicht gezwungen zu sein, dem Steuerungsherstellerbetriebliche Kenntnisse offen legen zu müssen. Dies ist bei den Verfahrenund der Vorrichtungen der eingangs genannten Art jedoch nicht möglich, dain diesem Fall umgekehrt der Steuerungshersteller dem KinematikherstellerDetailinformationen hinsichtlich der Steuerung offen legen müsste. [0021] DerErfindung liegt die Aufgabe zugrunde, unter Vermeidung der angesprochenenProbleme ein Verfahren und eine Vorrichtung der eingangs genanntenArt dahingehend weiterzuentwickeln, dass bei Bedarf, d.h. insbesonderebei Verwendung der Steuerung mit einer ursprünglich nicht vorgesehenen,neuen Kinematik, eine Kompatibilität erreichbar ist, ohne dieSteuerung selbst zu verändern.Ferner sollen Anbieter von Fremdkinematiken in die Lage versetztwerden, die Steuerung eines Steuerungsherstellers ohne dessen Hilfe nutzenzu können,um so von externen Entwicklungszyklen unabhängig zu werden. [0022] DieAufgabe wird bei einem Verfahren der eingangs genannten Art dadurchgelöst,dass durch eine Schnittstellenfunktion überprüft wird, ob optional im Steuerungskernenthaltene Modelle und/oder Prozeduren oder zusätzliche, an der Schnittstellevorgebbare Modelle und/oder Transformationsprozeduren und/oder Spezialalgorithmenkinematischer Strukturen fürbewegungsrelevante Größen desHandhabungsgerätesals Modellmodule verwendet werden. Bei einer Vorrichtung der eingangsgenannten Art ist zur Lösungder Aufgabe vorgesehen, dass diese eine Schnittstelle aufweist,an der zusätzlichzu optional im Steuerungskern enthaltenen Modellen und/oder TransformationsprozedurenzusätzlichenModelle und/oder Transformationsprozeduren und/oder Spezialalgorithmenkinematischer Strukturen fürbewegungsrelevante Größen desHandhabungsgerätsals Modellmodule vorgebbar sind. [0023] Kernder erfindungsgemäßen Lösung istdemnach eine Modularisierung der Steuerungsarchitektur, um die eingangsgenannten Transformationsprozeduren 1 bis 5 logisch vom Rest derSteuerung abzutrennen und so einen Mechanismus zu schaffen, dereine externe, kinematik-spezifische Implementierung eines Teils oderaller der Prozeduren 1 bis 5 ggf. zusammen mit entsprechenden Modellenund/oder Spezialalgorithmen in einem sogenannten "Modellmodul", erlaubt. DieseVorgehensweise beruht auf der Tatsache, dass die genannten Prozedurenals mathematische Funktionen ohne direkte Abhängigkeit von der restlichenSteuerung aufgefasst werden können;sie werden erfindungsgemäß als reineSchnittstellenspezifikation in der Steuerung betrachtet (vorgegebeneEin- und Ausgabegrößen), diemit den restlichen Steuerungsfunktionen kombinierbar sind: Für denjenigenTeil einer Robotersteuerung, der über die vorstehend genanntenProzeduren 1 bis 5 hinausgeht, müssendie internen Abläufedieser Pro zeduren nicht bekannt sein. Im Gegensatz zu anderen Funktionalitäten einerRobotersteuerung, die durch quasi-gleichzeitige Ausführung undInteraktion mit anderen Steuerungskomponenten gekennzeichnet sind(sogenannten Multi-Tasking),sind die genannten Prozeduren als Funktionen in streng mathematischemSinn anzusehen, d.h. bestimmte Eingangsgrößen werden nach einem definiertenAlgorithmus behandelt und liefern bestimmte Ergebnisgrößen. Demzufolgekönnendie genannten Prozeduren als eine Art "black box" aufgefasst werden, für die lediglicheine Schnittstelle zum Austausch der Eingangs- und Ausgangsgrößen definiertsein muss. [0024] DieErfindung sieht entsprechend vor, in der Steuerung eine vorzugsweiseprogrammtechnisch ausgebildete Schnittstelle einzufügen, diedie zumindest logisch, d.h. hinsichtlich ihrer Einbindung in dieProgrammstruktur von der restlichen Steuerung getrennten Prozeduren1 bis 5 an die restliche Steuerung anbindet. Auf diese Weise können einigeoder alle dieser Prozeduren unter optimalem Rückgriff auf die im Steuerungskernvorhandenen Standardalgorithmen numerischer und/oder analytischerArt gelöstwerden, wobei kinematik-spezifischeVerfahren im Zuge einer besonders bevorzugten Ausgestaltung deserfindungsgemäßen Verfahrensdurch die Modellmodule, die als Datei in einer externen Speichereinrichtung,ggf. einem löschbaren Nurlesespeicher(ROM, EPROM), vorliegen können,zu einem bestehenden Steuerungskern hinzugebunden werden, beispielsweisedurch einen in herkömmlichenRobotersteuerungen regelmäßig vorhandenenCompiler oder Bindemechanismus. Es ist dabei grundsätzlich möglich, dieProzeduren 1 bis 5 fürdiejenigen Kinematiken, die füreine Steuerung standardmäßig vorgesehensind, entweder intern (dauerhaft) zu implementieren; alternativkann vorgesehen sein, auch diese Prozeduren grundsätzlich über externeModellmodule anzubinden. [0025] Dasbzw. die Modellmodul(e) könnenim Wesentlichen ausführbarenObjekt-Code oder alternativ kompilierbaren Programm-Code beinhalten.Für dasBinden zum Steuerungskern kommt sowohl dynamisches als auch statischesLinken in Betracht. [0026] Nacheiner Weiterbildung des erfindungsgemäßen Verfahrens ist vorgesehen,dass die Kompatibilität derim Steuerungskern vorhandenen Standardalgorithmen und einer im Modellmodulangegebenen kinematischen Struktur überprüft wird. Zu diesem Zweck weisteine erfindungsgemäße Vorrichtungvorzugsweise eine Prüfungseinrichtungzum Überprüfen derKompatibilitätder Standardalgorithmen und einer im Modellmodul angegebenen kinematischenStruktur auf. Die Prüfungseinrichtungkann sich alternativ entweder im Steuerungskern oder im Modellmodulbefinden. [0027] WeitereEigenschaften und Vorteile der Erfindung ergeben sich aus der nachfolgendenBeschreibung von Ausführungsbeispielenanhand der Zeichnung. Es zeigt: [0028] 1a einBlockschaltbild der Struktur einer erfindungsgemäßen Robotersteuerung; [0029] 1b eineder 1a entsprechende Darstellung bei Aufruf der imSteuerungssystem implementierten Vorwärtsrechnung und Dynamikmodell über dasModellmodul sowie eine im Modellmodul implementierte Rückwärtsrechnung; [0030] 1c eineden vorangehenden Figuren entsprechende Darstellung bei Auswertungdes Dynamikmodells fürein im Kern der Steuerung vorhandenes Kinematikmodell; [0031] 2 anhandeines Blockschaltbilds die Struktur einer erfindungsgemäßen Robotersteuerung; [0032] 3a ineiner schematischen Darstellung die Speicherstruktur einer Varianteder erfindungsgemäßen Robotersteuerungmit einer Schnittstelle zum dynamischen oder statischen Linken einesModellmoduls zum Steuerungskern, bevor das Modellmodul gebundenwurde, und [0033] 3b eineschematische Darstellung der Speicherstruktur gemäß der 3a,nachdem das Modellmodul gebunden wurde. [0034] Die 1a zeigteinen typischen Mehrachs-Indstrieroboter R nebst zugehöriger SteuerungseinrichtungS, bei der darüberhinaus noch eine Prozessoreinheit 5.1, ein ArbeitsspeicherS.2 sowie ein Massenspeicher S.3 als regelmäßig vorhandene Bestandteileeiner derartigen Steuerungseinrichtung S dargestellt sind. Weiterhinzeigt die 1a anhand eines Blockschaltbildseine erfindungsgemäße Vorrichtung 1 zumSteuern eines Handhabungsgeräts,wie des genannten Mehrachs-Industrieroboters R, mit einem Satz kinematischer ModelleM1–M3im Kern 2 der Robotersteuerung sowie einem ModellmodulMM bei aufgerufener Rückwärtsrechnung. [0035] DieVorrichtung 1 weist zunächsteinen Steuerungskern 2 auf, der vorzugsweise in programmtechnischerForm, d.h. auf der Grundlage geeigneter Software auf einem Steuerungsrechner(der Steuereinheit S.1) fürdas HandhabungsgerätR eingerichtet ist. Dies geschieht regelmäßig durch Laden einer entsprechenden Software-Anwendungin den Arbeitsspeicher S.2 des Steuerungsrechners. [0036] DerSteuerungskern 2 umfasst Speicherbereiche 2.1, 2.2,in denen Kinematikmodelle M1–M3für die mitder erfindungsgemäßen Vorrichtung 1 bzw.dem Steuerungskern 2 betreibbaren Klassen von Handhabungsgeräten bzw.Standardalgorithmen V_std, V_num, R_num, D_std zur rechnerischenUmsetzung der entsprechenden Prozeduren (s.o.) gespeichert sind. [0037] Beiden Kinematikmodellen M1–M3kann es sich beispielsweise um Modelle für einen Fünf- und Sechsarm-Industrieroboter(M1), einen SCARA-Roboter (M2) und einen Portal-Roboter (M3) handeln.Jedes der Modelle M1–M3beinhaltet jeweils geeignete Prozeduren zur Vorwärtsrechnung (V_...), Rückwärtsrechnung(R_...), ggf. ein Dynamikmodell (D_...) sowie Maschinendaten (Dat_...),entweder in Form einer eigenen Implementierung, beispielsweise innerhalbdes Speicherbereichs 2.1, oder in Form eines Adressverweisesauf die entsprechenden Standardalgorithmen (..._std) innerhalb desSpeicherbereichs 2.2. So wird beispielsweise für das ModellM1 hinsichtlich der Vorwärts-und der Rückwärtsrechnungjeweils auf den Standardalgorithmus V_std bzw. R_std verwiesen.Für dieModell M2, M3 ist jeweils kein Dynamikmodell vorgesehen. [0038] Weiterhinumfasst der Steuerungskern 2 eine Planungs- und Aufrufinstanz 2.3 für durchzuführende Steuerungsaufgabensowie eine (logische) Schnittstelle 2.4, die den eigentlichenKern der vorliegenden Erfindung darstellt, auf die weiter untennoch detailliert eingegangen wird. [0039] Zusätzlich enthält der Steuerungskern 2 nocheine Auswahl- und Überprüfungseinrichtung 2.5,auf deren Funktion ebenfalls noch eingegangen wird. Die Auswahl-und Überprüfungseinrichtung 2.5 kannalternativ auch zweigeteilt ausgebildet und/oder außerhalbdes Steuerungskerns 2 (im Modellmodul MM; s.u.) enthalten sein. [0040] Getrenntvon dem vorstehend beschriebenen Steuerungskern 2 weistdie erfindungsgemäße Vorrichtung 1 eineexterne Speichereinrichtung 3 auf, in der beim Gegenstandder 1a ein im Wesentlichen analog zu den bereits beschriebenenKinematikmodellen M1–M3aufgebautes Modellmodul MM abgelegt ist. Bei der Speichereinrichtung 3 handeltes sich vorzugsweise um einen ROM- oder einen EPROM-Speicher odereine Datei auf einer Festplatte, Diskette etc. [0041] MitHilfe des Modellmoduls MM lassen sich erfindungsgemäß Spezialkinematikendarstellen, zu deren Betrieb der Steuerungskern 2 als solchernicht vorgesehen ist, beispielsweise da dem Steuerungshersteller eineentsprechende Kinematik (noch) nicht bekannt war. Das ModellmodulMM wird erfindungsgemäß vorzugsweisedurch einen regelmäßig im Steuerungskern 2 vorhandenenLinker (nicht gezeigt) zum Steuerungskern 2 gebunden undkann – wieauch die im Steuerungskern enthaltenen kinematischen Modelle M1–M3 eigeneTransformationsprozeduren (..._MM) bzw. (Adress-)Verweise auf Standardalgorithmen(..._std) im Steuerungskern 2 enthalten. Zusätzlich umfasstdas Modellmodul MM ein global definiertes Software-Objekt 4,auf das weiter unten noch eingegangen wird. [0042] AusGründender Übersichtlichkeitsind sowohl fürdie Modelle M1–M3als auch fürdas Modellmodul MM von den in der Beschreibungseinleitung erwähnten Prozeduren1 bis 5 jeweils nur Vorwärts-und Rückwärtsrechnung(Prozedur 1) und das Dynamikmodell (Prozedur 2) dargestellt. [0043] DieBeschreibung einer Roboterkinematik im Modellmodul MM kann auf unterschiedlicheArten erfolgen. Im Folgenden werden mögliche Standardimplementierungensowie deren Auswirkung auf die Implementierung der eingangs genanntenTrans formationsprozeduren und der erfindungsgemäßen (logischen) Schnittstelle 2.4 dargestellt.Eine entsprechende zugeordnete physikalische Schnittstelle zum Andockender Speichereinrichtung 3 mit Modellmodul MM an die (physikalische)Steuerung ist selbstverständlichebenfalls vorhanden, beispielsweise in Form eines CD- oder DVD-ROM-Laufwerksoder dergleichen, bei der hier gewählten logischen Darstellungsweisejedoch nicht gezeigt. [0044] Eineoffene kinematische Kette lässtsich beispielsweise durch Spezifikation der Denavit-Hartenberg-Paramterund des Achstyps (Linearachse/rotatorische Achse) in einer ASCII-Datei beschreiben.Die entsprechenden Angaben, die erfindungsgemäß als Maschinendaten Dat_MMabgelegt werden, lautet entsprechend (Craig, a.a.O.; Paul, a.a.O.): dh1= {a 1000 cm, α 90°, d 20 cm, θ 0°} dh2= {a –500cm, α –90°, d 100 cm, θ 0°} [0045] Standardalgorithmen,wie die Vorwärtsrechnungfür offenekinematische Ketten V_std eines Industrieroboters mit Drehgelenken,sind im Steuerungskern 2 implementiert, beispielsweisein Form einfacher Matrizenmultiplikationen Tool = A1 RotZ(θ1) A2 RotZ(θ2) A3 RotZ(θ3) ... AnRotZ(θn)An+1 [0046] Dabeibezeichnet Ai die konstanten Matrizen zurBeschreibung der Geometrie einzelner Bauteile der kinematischenKette und Rotz(θi) eine Drehung um die z-Achse des jeweiligenGelenks (sofern nur Drehachsen vorhanden sind). [0047] Alternativkann der Aufbau eines Roboters in Form einer graphischen Darstellunggegeben sein, dessen Knoten den Bauteilen des Roboters entsprechen.Darüberhinaus sind den einzelnen Bauteilen Eigenschaften wie Ausdehnung,Masse usw. zugeordnet. Alternativ kann auf eine Beschreibung derKinematik vollständigverzichtet werden, soweit die Parameter der Modellbeschreibung,wie Armlängenoder dergleichen, als feste Konstanten in der Steuerungssoftware,d.h. im Steuerungskern 2 implementiert sind. [0048] Diein 1a gezeigte Schnittstelle 2.4 zum (An-)Bindenvon Modellmodulen MM ist im Zuge einer bevorzugten Ausgestaltungin der Erfindung eine programmtechnische Einrichtung und in einergebräuchlichenProgrammiersprache, wie C++, entworfen. Hierbei stellt der Steuerungsherstellereine Schnittstellenbeschreibung in Form einer sogenannten Header-Dateizur Verfügung(Dateierweiterung: ".h;" hier verwendeter Name: "ModellInterface.h"). Diese Datei enthält eineBeschreibung der Dateitypen und Funktionssignaturen (Argumente,Parameter und Ergebnisse) sowie die Namen von im Steuerungskern 2 vorhandenenAdressvariablen, die zum Binden der erfindungsgemäßen Schnittstelle 2.4 verwendetwerden. Unter "Binden" versteht man dasVerbinden eines vom Compiler erzeugten Object-Codes mit Bibliothekenoder dergleichen zum Erzeugen eines ablauffähigen Programms (wird auchals Linken bezeichnet). [0049] Derfolgenden Programmcode zeigt ein typisches Beispiel einer Header-Dateimit Unterstützungvon Vorwärts-und Rückwärtstransformation: [0050] ImSteuerungskern 2 der erfindungsgemäßen Vorrichtung 1 sindweiterhin Hilfsprozeduren zum Aufruf der Transformationsprozedurenimplementiert. Zusätzlichfinden sich dort Variablen mit Adressen, mit deren Hilfe die Schnittstelle 2.4 inder Lage ist, die fürein bestimmtes Modell M1–M3,MM erforderlichen Prozeduren aufzurufen. Im o.g. Beispielcode sinddies "AdresseForwardTransformation" und "AdresseBackwardTransformation" für die Aufrufeder Vorwärts-bzw. Rückwärtstransformation.Ein möglicherSchnittstellen-Code unter Einbindung der vorstehend genannten Header-Dateilautet wie folgt: [0051] ImModellmodul MM selbst sind die speziellen, auf die zugrunde liegendeKinematik zugeschnittenen Prozeduren (1a: R_MM)implementiert. Dazu kommen, wie bereits gesagt, die entsprechendenMaschinendaten Dat_MM sowie ein globales Software-Objekt 4,d.h. ein Objekt, das nicht nur innerhalb eines Unterprogramms zurVerfügungsteht, dessen Anweisungen bei der Initialisierung des ModellmodulsMM ausgeführt werden(enthältKonstruktionen und allgemeine Initialisierungsbefehle). [0052] Indem folgenden Beispiel ruft die Vorwärtsrechnung den Standardalgorithmusaus dem Steuerungskern 2 auf; dies ist in der 1b mitgestrichelten Linien dargestellt. Die Rückwärtsrechnung ist gesondert im ModellmodulMM implementiert, was im Programmcode nur angedeutet und in der 1a mittelsder durchgezogenen Linie von der Schnittstelle 2.4 zurProzedur R_MM des Modellmoduls MM zeichnerisch dargestellt ist.Maschinendaten Dat_MM sind als Liste von Denavit-Hartenberg-Parameternim Modellmodul MM abgelegt. Das Software-Objekt "SpecialModel" weist in seinem Konstruktor die Adressenderjenigen Funktionen den in der Header-Datei deklarierten Variablenzu, die den Prozeduren des Modellmoduls (mit dem Spezialmodell, "SpecialModel") entsprechen: [0053] DieSchnittstelle 2.4 kann erfindungsgemäß in unterschiedlichen Ausgestaltungenrealisiert werden, die jeweils von einer konkreten Ausgestaltungdes Steuerungskerns 2 abhängen: [0054] DieseVariante betrifft die Implementierung einer Schnittstelle 2.4 zumdynamischen oder statischen Linken des Modellmoduls MM zum Steuerungskern 2.Dabei werden die Algorithmen fürdie Prozeduren 1 bis 5 als Funktionen in einer Programmier-Hochspracheoder in Maschinensprache (Assembler) implementiert, woraufhin dieAnweisungen ggf. durch einen Compiler oder Assembler in ein maschinenlesbaresObject-Format (Object-Code) übersetztwerden. Der Steuerungskern 2 prüft dann beim Start des Steuerungssystemsbeispielsweise in der Planungs- und Aufrufinstanz 2.3,die fürden Ablauf eines Steuerungsprogramms verantwortlich ist, ob einesolche Object-Datei mit einem Modellmodul vorhanden ist und bindetdiese ggf. zum Steuerungskern. Das Modellmodul muss in diesem Zusammenhangdem Steuerungskern die Adressen der zur Ausführung seiner Prozeduren jeweilserforderlichen Funktionen mitteilen, die entweder im ModellmodulMM selbst oder im Steuerungskern liegen können, wobei erfindungsgemäß durchdie Überprüfungseinrichtung 2.5 einezusätzliche Überprüfung derKompatibilitätvon Stan dardalgorithmen des Steuerungskerns 2 und Anforderungendes Modellmoduls MM durchgeführtwird, beispielsweise betreffend die Anzahl erforderlicher bzw. übergebenerParameter und/oder eines Ausgabeformats. Bei Fehlern kann außerdem eineentsprechende Meldung an den Steuerungskern angegeben werden. [0055] Dementsprechendumfasst eine bevorzugte Ausgestaltung der Erfindung, wie sie bereitsvorstehend anhand der 1a einleitend erläutert wurde,zwei unabhängigeKomponenten, nämlichden Steuerungskern 2 und wenigstens ein Modellmodul MM.Der Steuerungskern enthältdabei regelmäßig einenMechanismus zum dynamischen Binden (Linken) von Tabellen mit symbolischenNamen, sogenannten Symboltabellen, der üblicherweise bereits vom Betriebssystemzur Verfügunggestellt wird, z.B. von dem in Robotersteuerungen regelmäßig verwendetenEchtzeitbetriebssystem VxWorks. Weiterhin enthalten sowohl Steuerungskern 2 als auchdas Modellmodul MM einerseits ausführbare Maschinenbefehle inForm von Funktionen oder Prozeduren, die speziell im Bereich desBetriebssystems VxWorks durch Übersetzenvon C- oder C++-Programmen entstanden sind. Andererseits existiertjeweils eine Symboltabelle, die die Einsprungadressen für die Funktionenbzw. Prozeduren und die Lage von Variablen im Speicher angibt. Hierbeihandelt es sich um eine gängige Formeiner Symboltabelle, die ebenfalls von dem EchtzeitbetriebssystemVxWorks bereitgestellt wird. [0056] ImRahmen der vorliegenden Erfindung enthält die Symboltabelle des Steuerungskerns 2 insbesondereeine Adressvariable der Form "AdresseFunktionX" (siehe vorstehendenProgrammcode). Dabei steht "FunktionX" für eine derProzeduren 1 bis 5, d.h. fürjede der Prozeduren bzw. seine spezielle Ausprägung im Rahmen eines Kinematikmodellsmit den entsprechenden möglichenParametern und Rückgabewertenexis tiert eine eigene Adressvariable. Im vorstehenden Beispiel sinddies die Bezeichnungen "AdresseForwardTransformation" "AdresseBackwardTransformation". Diese Adressvariablensind innerhalb des Steuerungsprogramms global bekannt und enthaltendie Speicheradresse der Rechenvorschrift zum Bezeichner "FunktionX" im Speicher. [0057] Weiterhinenthältder Steuerungskern 2 unter anderem eine Routine mit derBezeichnung "StandardFunktionX", im Beispiel "StandardForwardTransformation". Diese stellt eine(im Steuerungskern 2 angesiedelte) Standardimplementierungder entsprechenden Prozedur, wobei es möglich ist, anhand einer weiterenVariablen zur Kennzeichnung des Kinematiktyps eine bestimmte auseiner Mehrzahl von im Steuerungskern 2 vorhandenen Prozedurenanzusprechen. Es ist auch möglich,dass die genannte Standardimplementierung im Steuerungskern 2 nurformal vorhanden ist, so dass bei ihrem Aufruf eine Fehlermeldunggeneriert wird. Auf diese Weise lässt sich effektiv erzwingen,dass die entsprechende Prozedur entweder implementiert oder nie verwendetwird. Alternativ ist es auch möglich,dass gar keine Standardimplementierung vorhanden ist, wie im obigenBeispiel im Falle der "StandardBackwardTransformation". [0058] DasModellmodul MM enthältseinerseits ausführbareMaschinenbefehle fürFunktionen vom Typ "ModulfunktionX", im Beispiel dieProzeduren "ForwardTransformationSpecial" und "BackwardTransformationSpecial". Weiterhin umfasstdas Modellmodul eine Initialisierungsroutine in Form von ausführbarenMaschinenbefehlen, die vom dynamischen Linker des Steuerungskerns 2 nachdem Binden aufgerufen wird. Im Rahmen einer bevorzugten Ausgestaltungder Erfindung wird, wie in den obigen Programmabschnitten dargestellt,in der Programmiersprache C++ ein globales Objekt ("SpecialModell") angelegt, dessenKonstruktor nach dem Link aufgerufen wird, bevor irgendeine Funktion – typischerweise "main()" bei einem Programmbestehend aus nur einem Modul – aufgerufenwird. Bei einem nachgeladenen Modul wird typischerweise nach demnachladen gar keine Funktion aufgerufen, d.h. es werden nur Konstruktorenglobaler Objekte aufgerufen. Dadurch wird bei dem beschriebenenVerfahren sichergestellt, dass vor dem Aufruf einer Funktion ausdem Modellmodul bereits alle Variablen ihre korrekten Werte besitzen.Da dem Ersteller des Modellmoduls der Name "AdresseFunk-tionX" bekannt ist, lässt sich in der Initialisierungsroutineeine Anweisung vorgeben, die der Variablen "Adresse-FunktionX" die Speicheradresse der "ModulfunktionX" zuweist. [0059] BeiInitialisierung des Gesamtsystems wird zunächst anhand einer Variablen "UseModelInterface" geprüft, ob eineim Steuerungskern vorhandene (Transformations-)Prozedur verwendetwerden soll oder ob an der Schnittstelle eine externe Prozedur ineinem Modellmodul vorgegeben wird. Soll die Schnittstelle nichtverwendet werden, wird die Adresse einer im Steuerungskern vorhandenenStandardprozedur in der Variablen "AdresseFunktionX" eingetragen bzw. im Rahmen einer Fallunterscheidungdirekt in einen Fall verzweigt, in dem die im Steuerungskern 2 implementiertenStandardprozeduren aufgerufen werden (vgl. 1c). [0060] Fallsdas Modellmodul MM überdie Schnittstelle 2.4 verwendet werden soll, wird es mittelsdes dynamischen Bindemechanismus in den Speicher des Steuerungsrechners(nicht gezeigt) geladen und zum Steuerungskern 2 gebunden.Kennzeichnend fürden dynamischen Bindemechanismus ist, dass die symbolischen Namenim geladenen Modellmodul MM ersetzt werden, beispielsweise durchdie Speicheradresse. Dadurch kann das Modellmodul MM auf die Variable "AdresseFunktionX" des Steuerungskerns 2 zugreifen.Dies ermöglichtes dem Modellmodul, Informationen über den vorab festgelegtenge meinsam genutzten Namen "AdresseFunktionX" an den Steuerungskern 2 weiterzugeben.Nach dem Laden und Binden des Modellmoduls MM wird die Initialisierungsroutine(siehe oben) aufgerufen, wodurch die Speicheradresse der mittelsder Schnittstelle vorgesehenen Prozedur "ModulfunktionX" in der Variablen "AdresseFunktionX" abgelegt wird. In obigen Beispielensind dies die Zuweisungen "AdresseForwardTransformation= TransformationSpecial; AdresseBackwardTransformation = BackwardTransformationSpecial". Weiterhin werdenin der Initialisierungsroutine ggf. die Modellparameter als Maschinendatenaus Beschreibungsdateien oder -tabellen (Dat_MM) geladen. [0061] Nacherfolgter Initialisierung (vgl. 3a, b)des Steuerungskerns 2 steht folglich in der Variablen "AdresseFunktionX": – die Speicheradressedes Standardalgorithmus "StandardfunktionX", falls die Schnittstellenicht zum Binden eines Modellmoduls verwendet wird; – dieSpeicheradresse der Funktion "ModulfunktionX", falls die Schnittstellezum Binden eines Modellmoduls verwendet wird. [0062] Dervorstehend beschriebene Ablauf wird als "dynamisches Binden" bezeichnet, da er bei jedem Start derSteuerung abläuft.Alternativ kann das Ergebnis eines wie oben beschriebenen Bindeablaufs(statisch) gespeichert werden und lässt sich in der Folge als neuerSteuerungskern definieren. Dies bezeichnet man als sogenanntes "statisches Binden". [0063] Nachden Vorangehenden erfolgt die Berechnung der Vorwärtstransformationbei aktivierter Modellschnittstelle 2.4 fol gendermaßen (vergleiche 1b, 2;jeweils gestrichelte Linien): Um "FunktionX" auszuwerten, führt der Steuerungskern 2 dieBefehle aus, die an der in "AdresseFunktionX" eingetragenen Speicheradresseabgelegt sind. Wird die Schnittstelle 2.4 nicht verwendet,d.h. ist kein Modellmodul MM an den Steuerungskern 2 gebunden,entspricht die in "AdresseFunktionX" gespeicherte Adresseder Speicheradresse der Standardfunktion "StandardfunktionX". Anderenfalls entspricht sie der Speicheradresseder "ModulfunktionX". [0064] Dievorstehend beschriebenen Vorgängesind detailliert in den 3a, bdargestellt, die in schematischer Weise die Speicherstruktur einerVariante der erfindungsgemäßen Robotersteuerungmit einer Schnittstelle zum dynamischen oder statischen Linken einesModellmoduls zum Steuerungskern zeigen, bevor bzw. nachdem ein Modellmodulgebunden werden. [0065] AndereProgrammiersprachen als C oder C++ bzw. andere Betriebssysteme bieteneventuell leicht abgewandelte Mechanismen, um analog zum VorstehendenzusätzlicheFunktionen zu integrieren. Die Programmiersprachen LISP oder Small-Talk, wobei Ersterefür Roboter-Anwendungenim Bereich der künstlichenIntelligenz beliebt ist, werden in der Regel nicht compiliert, sodass interpretierbare Anweisungen als einfache Textdateien jederzeitzum System hinzugefügtwerden können.Im Rahmen der Erfindung ist dabei entscheidend, dass sowohl im Steuerungskernals auch im Modellmodul ein gemeinsamer Bezeichner verwendet wird, hier: "AdresseFunktionX". [0066] Dieerfindungsgemäße Vorrichtungnach 1c unterscheidet sich von den bislang erläutertenAusgestaltungen dadurch, dass kein Modellmodul MM konfiguriert ist,d.h. das Modellmodul MM ist nicht an den Steuerungskern 2 gebunden.Die Schnittstelle 2.4 ruft gemäß 1c dasDynamikmodell D_std fürein im Steuerungskern 2 enthaltenes Kinematikmodell M1auf, das einen Standardalgorithmus D_std des Steuerungskerns 2 verwendet. [0067] Die 2 zeigtdie Struktur einer erfindungsgemäßen Robotersteuerungmit der erfindungsgemäßen Schnittstelle 2.4,bei der alle kinematischen Modelle in Form von Modellmodulen implementiertsind, d.h. auch die Modelle M1–M3sind extern bezüglichdes Steuerungskerns 2 angeordnet, der lediglich StandardalgorithmenV_std, V_nun, R_nun, D_std als Bausteine für die (externen) Kinematikmodellezur Verfügungstellt. Der durchgezogene Pfeil zeigt den Aufruf für die Rückwärtstransformation,die gestrichelten Linien die Aufrufe für die anderen Prozeduren (Vorwärtsrechnungund Dynamikmodell). Bei dieser Ausgestaltung werden Spezialkinematiken(Fremdkinematiken; Modellmodul MM) und Standardkinematiken (ModuleM1–M3)völliggleichberechtigt behandelt. Wie das Modellmodul MM enthalten auchdie Module M1–M3 gemäß der in 2 gezeigten Ausgestaltungein globales Objekt 4, das jedoch aus Gründen der Übersichtlichkeitnicht explizit dargestellt ist. Die Module M1–M3 können einzeln oder gemeinsammit entsprechender logischer Trennung (fette gestrichelte Linienin 2) mittels einer weiteren externen Speichereinrichtung 3' zur Verfügung gestelltwerden. Im Unterschied zu Variante 1, wo der ausführbare Objekt-Codebereits vom Steuerungshersteller vor Auslieferung der Steuerungaus dem Quell-Code erzeugt wurde, wird bei Variante 2 ein Form vonQuelltext als Modellmodul betrachtet, und erst beim Nachladen desModuls in ausführbarenObjekt-Code übersetzt,bzw. jedes mal beim Aufruf einer Funktion des Modellmoduls interpretiert.Als Quelltext kann auch eine Kombination von zu interpretierendembzw. kompilierendem Code und eine textuelle Beschreibung der Maschinendateneiner Roboterkinematik aufgefasst werden. [0068] Alternativkann die Beschreibung der Prozeduren 1 bis 5 durch mathematischeFormeln und Gleichungen erfolgen, die von einem Interpreter oderCompiler im Steuerungskern 2 ausgewertet werden. Dies erfordert dieImplementierung eines Interpreters oder Compilers zur Auswertungvon mathematischen Formeln oder Gleichungen einschließlich Variablen,die etwa die Robotergeometrie beschreiben. Allerdings sind derartigeInterpreter oder Compiler in modernen Robotersteuerungen regelmäßig enthalten,da diese im Kontext ihrer Programmiersprache die Auswertung komplexermathematischer Ausdrückegestatten. Auf diese Weise kann z.B. die Rückwärtsrechnung einer Drehachsen-Kinematik,d.h. Bestimmung des Drehwinkels aus zwei kartesischen Positionskoordinatenx, y durch Auswertung der Arkustangensfunktion (arctan) erfolgen. [0069] SowohlVariante 1 als auch Variante 2 könnenmit einer beliebigen Modellbeschreibung (ASCII-Datei, Verbindungsgraphieder mechanischen Komponenten, ...) kombiniert werden. 1 Vorrichtung 2 Steuerungskern 2.1,2.2 Speicherbereich 2.3 Planungs-und Aufrufinstanz 2.4 Schnittstelle 2.5 Auswahl-und Überprüfungseinrichtung 3 Speichereinrichtung 4 globalesSoftware-Objekt M1–M3 Kinematikmodell MM Modellmodul
权利要求:
Claims (13) [1] Verfahren zum Steuern eines Handhabungsgerätes, wieeines Mehrachs-Industrieroboters, mittels einer Steuerungseinrichtung,mit einem Steuerungskern zum Ausführen von Steuerungsprozessenfür dasHandhabungsgerät, dadurchgekennzeichnet, dass durch eine Schnittstellenfunktion überprüft wird,ob optional im Steuerungskern enthaltene Modelle und/oder Prozedurenoder zusätzliche,an der Schnittstelle vorgebbare Modelle und/oder Transformationsprozedurenund/oder Spezialalgorithmen kinematischer Strukturen für bewegungsrelevanteGrößen desHandhabungsgerätesals Modellmodule verwendet werden. [2] Verfahren nach Anspruch 1, dadurch gekennzeichnet,dass die Modellmodule als Dateien in einer externen Speichereinrichtungvorliegen und zu dem Steuerungskern gebunden werden. [3] Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet,dass die Modellmodule dynamisch zu dem Steuerungskern gebunden werden. [4] Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet,dass die Modellmodule statisch zu dem Steuerungskern gebunden werden. [5] Verfahren nach einem der Ansprüche 1 bis 2, dadurch gekennzeichnet,dass die Kompatibilitätder Standardalgorithmen und einer im Modellmodul angegebenen kinematischenStruktur überprüft wird. [6] Vorrichtung zum Steuern eines Handhabungsgeräts, wieeines Mehrachs-Industrieroboters, mit einem Steuerungskern, derzum Ausführenvon Steuerungsprozessen fürdas Handhabungsgeräteingerichtet ist, gekennzeichnet durch eine Schnittstelle (24),an der zusätzlichzu optional im Steuerungskern (2) enthaltenen Modellen(M1, M2, M3) und/oder Transformationsprozeduren (R_M1, R_M2, R_M3)zusätzlicheModelle und/oder Transformationsprozeduren (R_MM) und/oder Spezialalgorithmenkinematischer Strukturen fürbewegungsrelevante Größen desHandhabungsgerätsals Modellmodule (MM) vorgebbar sind. [7] Vorrichtung nach Anspruch 6, dadurch gekennzeichnet,dass die Schnittstelle (2.4) programmtechnisch ausgebildetist. [8] Vorrichtung nach Anspruch 6 oder 7, gekennzeichnetdurch eine Prüfungseinrichtung(2.5) zum Überprüfen derKompatibilitätder Standardalgorithmen (V_std, V_num, R_num, D_std) und einer imModellmodul (MM) angegebenen kinematischen Struktur. [9] Vorrichtung nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet,dass die Modellmodule (MM) in einer externen Speichereinrichtung(3) ablegbar und zu dem Steuerungskern (2) bindbarsind. [10] Vorrichtung nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet,dass die Modellmodule (MM) dynamisch zum Steuerungskern (2)bindbar sind. [11] Vorrichtung nach einem der Ansprüche 6 bis 9, dadurch gekennzeichnet,dass die Modellmodule (MM) statisch zum Steuerungskern (2)bindbar sind. [12] Vorrichtung nach einem der Ansprüche 6 bis 11, dadurch gekennzeichnet,dass die Modellmodule (MM) im wesentlichen ausführbaren Objekt-Code enthalten. [13] Vorrichtung nach einem der Ansprüche 6 bis 11, dadurch gekennzeichnet,dass die Modellmodule (MM) im wesentlichen kompilierbaren Programmcodeenthalten.
类似技术:
公开号 | 公开日 | 专利标题 Dong et al.2017|Development of a slender continuum robotic system for on-wing inspection/repair of gas turbine engines Lozano-Perez1983|Robot programming ES2644939T3|2017-12-01|Método y sistema para determinar al menos una propiedad de un manipulador US6442451B1|2002-08-27|Versatile robot control system EP2381325B1|2017-03-08|Verfahren zur Offline-Programmierung eines Roboters Nethery et al.1994|Robotica: A Mathematica package for robot analysis US9387589B2|2016-07-12|Visual debugging of robotic tasks EP1921526B1|2012-02-29|Verfahren zur Bewertung und Korrektur eines Roboterprogramms und Vorrichtung zur Bewertung und Korrektur eines Roboterprogramms Blomdell et al.2005|Extending an industrial robot controller: implementation and applications of a fast open sensor interface DE202015105595U1|2016-01-14|Absolutes robotergestütztes Positionsverfahren Abu-Dakka et al.2015|Adaptation of manipulation skills in physical contact with the environment to reference force profiles Grunwald et al.2003|Programming by touch: The different way of human-robot interaction Ajwad et al.2015|A systematic review of current and emergent manipulator control approaches EP1643327B1|2012-08-08|Systeme und Verfahrenzur Erleichterungder Bewegungssteuerung durch Transformation von Koordinatensystem Hong et al.2001|A PC-based open robot control system: PC-ORC JP2786225B2|1998-08-13|工業用ロボットの制御方法及び装置 CN102216037B|2014-06-18|用于优化工业机器人的编程移动路径的方法和装置 US6445964B1|2002-09-03|Virtual reality simulation-based training of telekinegenesis system for training sequential kinematic behavior of automated kinematic machine JP2013134786A|2013-07-08|ロボットによる数値制御プログラムの実行 KR20160149290A|2016-12-27|로봇을 프로그래밍하기 위한 방법 및 시스템 US20080201015A1|2008-08-21|System for Calibration of an Industrial Robot and a Method Thereof Neto et al.2012|High‐level robot programming based on CAD: dealing with unpredictable environments JP2010524714A|2010-07-22|関節を制御する方法及びトルク速度変換装置 US20060152533A1|2006-07-13|Program robots with off-line design Lee et al.2007|Human-robot cooperation control for installing heavy construction materials
同族专利:
公开号 | 公开日 EP1612004A2|2006-01-04| US20060004489A1|2006-01-05| DE102004031485B4|2015-07-30| US7742838B2|2010-06-22| EP1612004B1|2014-05-07| EP1612004A3|2009-12-23|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 EP0657043B1|1992-08-31|1997-03-05|Siemens Aktiengesellschaft|Konfigurierbarer mensch-maschine-kommunikationsbereich für werkzeugmaschinen- oder robotersteuerungen| DE19751955A1|1997-11-24|1999-06-02|Biotechnolog Forschung Gmbh|Virtueller Roboter| EP1131686B1|1998-11-18|2003-04-23|Siemens Aktiengesellschaft|Verfahren zur steuerung technischer prozesse|DE102007017578A1|2007-04-13|2008-10-16|Kuka Roboter Gmbh|Robotersteuerung, Industrieroboter und Verfahren zum Erhalten eines absolutgenauen Modells| DE102010004474A1|2010-01-13|2011-07-14|KUKA Laboratories GmbH, 86165|Control for a manipulator|JP2002113675A|2000-10-11|2002-04-16|Sony Corp|ロボット制御システム並びにロボット制御用ソフトウェアの導入方法| US6816753B2|2000-10-11|2004-11-09|Sony Corporation|Robot control system and robot control method| US6757587B1|2003-04-04|2004-06-29|Nokia Corporation|Method and apparatus for dynamically reprogramming remote autonomous agents|US7862420B2|2003-08-20|2011-01-04|Igt|Gaming device having a symbol accumulation game with a physical prize| DE102004056861A1|2004-11-25|2006-06-08|Kuka Roboter Gmbh|Verfahren und Vorrichtung zum Regeln, Steuern von Manipulatoren| US8301421B2|2006-03-31|2012-10-30|Energid Technologies|Automatic control system generation for robot design validation| AT504536B1|2006-10-30|2009-03-15|Ehrenleitner Franz|Verfahren zur bewegung von lasten, werkzeugen und dergleichen| DE102006053158A1|2006-11-10|2008-05-15|Kuka Roboter Gmbh|Robotersteuerung, Roboter und Verfahren zum Steuern eines Roboters| JP4291386B2|2007-10-04|2009-07-08|ファナック株式会社|ワーク設置誤差補正手段を有する数値制御装置| DE102007056117A1|2007-11-15|2009-05-28|Kuka Roboter Gmbh|Industrieroboter und Verfahren zum Steuern der Bewegung eines Industrieroboters| DE102008005124A1|2008-01-18|2009-07-23|Kuka Roboter Gmbh|Computersystem, Steuerungsvorrichtung für eine Maschine, insbesondere für einen Industrieroboter, und Industrieroboter| DE102009023307A1|2009-05-29|2010-12-02|Kuka Roboter Gmbh|Verfahren und Vorrichtung zur Steuerung eines Manipulators| DE102009054112A1|2009-11-20|2011-05-26|Kuka Roboter Gmbh|Verfahren und Vorrichtung zur Planung und/oder Steuerung einer Roboterapplikation| US8688412B2|2010-04-07|2014-04-01|Honeywell International Inc.|System and method for solving chemical engineering equations and model development using equation editor| CH709347A2|2014-03-10|2015-09-15|Tecan Trading Ag|Verfahren zur Wegfindung in einem automatisierten Handhabungssystem sowie Handhabungssystem mit entsprechendem Kontrollmodul zur Wegfindung.| US10350766B2|2015-09-21|2019-07-16|GM Global Technology Operations LLC|Extended-reach assist device for performing assembly tasks|
法律状态:
2006-01-19| OP8| Request for examination as to paragraph 44 patent law| 2011-12-05| R082| Change of representative|Representative=s name: WALLINGER RICKER SCHLOTTER TOSTMANN, DE Representative=s name: WALLINGER RICKER SCHLOTTER TOSTMANN, 80331 MUENCHE Representative=s name: WALLINGER RICKER SCHLOTTER TOSTMANN PATENT- UN, DE | 2015-03-19| R016| Response to examination communication| 2015-04-10| R018| Grant decision by examination section/examining division| 2015-05-08| R130| Divisional application to|Ref document number: 102004064297 Country of ref document: DE | 2015-07-02| R130| Divisional application to|Ref document number: 102004064297 Country of ref document: DE Effective date: 20150508 | 2016-05-03| R020| Patent grant now final| 2018-10-17| R081| Change of applicant/patentee|Owner name: KUKA DEUTSCHLAND GMBH, DE Free format text: FORMER OWNER: KUKA ROBOTER GMBH, 86165 AUGSBURG, DE | 2018-10-17| R082| Change of representative|Representative=s name: WALLINGER RICKER SCHLOTTER TOSTMANN PATENT- UN, DE | 2022-01-01| R119| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 DE102004031485.3A|DE102004031485B4|2004-06-30|2004-06-30|Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts|DE102004031485.3A| DE102004031485B4|2004-06-30|2004-06-30|Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts| EP05013741.3A| EP1612004B1|2004-06-30|2005-06-25|Verfahren und Vorrichtung zum Steuern des Handhabungsgeräts| US11/170,495| US7742838B2|2004-06-30|2005-06-29|Process and device for controlling the robotal device| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|